package com.k8sops.backend.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.k8sops.backend.model.entity.DOSProject;

/**
 * Project Service Interface
 */
public interface DOSProjectService extends IService<DOSProject> {
    
    /**
     * Add a new project
     * 
     * @param project project entity
     * @return true if successful, false otherwise
     */
    boolean addProject(DOSProject project);
    
    /**
     * Update project information
     * 
     * @param project project entity
     * @return true if successful, false otherwise
     */
    boolean updateProject(DOSProject project);
    
    /**
     * Delete a project by ID
     * 
     * @param id project ID
     * @return true if successful, false otherwise
     */
    boolean deleteProjectById(Long id);
    
    /**
     * Get project by ID
     * 
     * @param id project ID
     * @return project entity
     */
    DOSProject getProjectById(Long id);
    
    /**
     * Page query projects
     * 
     * @param page page number
     * @param size page size
     * @param projectName project name for filtering (optional)
     * @param groupId group ID for filtering (optional)
     * @return paged result
     */
    IPage<DOSProject> pageProjects(Integer page, Integer size, String projectName, Integer groupId);
}
